home *** CD-ROM | disk | FTP | other *** search
- /* rexx macro */
-
- options results /* enable return codes */
-
- if (left(address(), 6) ~= "GOLDED") then /* not started by GoldEd ? */
-
- address 'GOLDED.1'
-
- 'LOCK CURRENT RELEASE=4' /* lock GUI, gain access */
-
- if (RC ~= 0) then
-
- exit
-
- options failat 6 /* ignore warnings */
-
- signal on syntax /* ensure clean exit */
-
- /* ------------------------- INSERT YOUR CODE HERE: -------------------- */
-
- /* INPUT: SOFTWARE/K (supported values: SAS/C,SAS/C-GNUMAKE,VBCC,DICE,DICE-GNUMAKE,STORMC,GENERIC) */
-
- parse upper arg SOFTWARE .
-
- if (SOFTWARE = "") then
-
- SOFTWARE = "GENERIC"
-
- 'QUERY CAT'
-
- if (RESULT = "deutsch") then do
-
- STRING.sNOFILE = "Keine Konfigurationsdatei für «"
- STRING.sNOFILE2 = "»|im aktuellen Verzeichnis. Neue Datei|erzeugen ?"
- STRING.sCREATE = "!ERZEUGEN|Abbre_chen"
- STRING.sUNSUPPORTED = "Diese Funktion wird von der aktuellen|C/C++-Umgebung nicht unterstützt !"
- STRING.sOPTIONSERR = "Kann Compileroptionen nicht speichern !"
- STRING.sNAME = "Projektname"
- STRING.sPROJECTNAME = "Projektname auswählen (unter diesem Namen*nwird das ausführbare Programm erzeugt):"
- STRING.sUNNAMED = "unbenannt"
- end
- else do
-
- STRING.sNOFILE = "No configuration file for «"
- STRING.sNOFILE2 = "»|in the current drawer. Create|a new configuration file ?"
- STRING.sCREATE = "!CREATE|_CANCEL"
- STRING.sUNSUPPORTED = "This function is not supported|by the current C/C++ mode !"
- STRING.sOPTIONSERR = "Can not save compiler options !"
- STRING.sNAME = "Projektname"
- STRING.sPROJECTNAME = "Choose a project name (this will be used*nas name for the generated executable):"
- STRING.sUNNAMED = "unnamed"
- end
-
- if ((SOFTWARE ~= "SAS/C") & (SOFTWARE ~= "SAS/C-GNUMAKE") & (SOFTWARE ~= "VBCC") & (SOFTWARE ~= "GCC")) then do
-
- 'REQUEST PROBLEM="' || STRING.sUNSUPPORTED || '"'
- end
- else do
-
- 'QUERY PATH VAR=PATH'
-
- R = pragma('D', PATH)
-
- /* locate options file */
-
- if ((SOFTWARE = "SAS/C") | (SOFTWARE = "SAS/C-GNUMAKE")) then
-
- OPTIONSFILE = "scoptions"
-
- if (SOFTWARE = "GCC") then
-
- OPTIONSFILE = "gcc.options"
-
- if (SOFTWARE = "VBCC") then
-
- OPTIONSFILE = "vbcc.options"
-
- /* create new options file ? */
-
- if (exists(OPTIONSFILE) = 0) then do
-
- 'REQUEST TITLE="' || PATH || '" BODY="' || STRING.sNOFILE || SOFTWARE || STRING.sNOFILE2 || '" BUTTON="' || STRING.sCREATE || '"'
-
- if ((RESULT = 0) | (RC ~= 0)) then do
-
- 'UNLOCK'
-
- exit
- end
-
- /* query project name (only SAS/C options file) */
-
- if ((SOFTWARE = "SAS/C") | (SOFTWARE = "SAS/C-GNUMAKE")) then do
-
- call getprojectname
-
- if (PROJECTNAME = "") then do
-
- do until (PROJECTNAME ~= "")
-
- 'REQUEST STRING TITLE="' || STRING.sNAME || '" BODY="' || STRING.sPROJECTNAME || '" OLD="' || STRING.sUNNAMED || '" VAR=PROJECTNAME'
-
- if ((PROJECTNAME = "") | (RC ~= 0)) then do
-
- 'UNLOCK'
-
- exit
- end
- end
- end
- end
-
- call saveoptions(SOFTWARE)
- end
-
- /* run options program */
-
- if (exists(OPTIONSFILE)) then do
-
- 'QUERY SCREEN VAR=SCREEN'
-
- if (SOFTWARE = "VBCC") then
-
- 'RUN ASYNC CMD="golded:add-ons/c++/tools/cprefs/bin/vbccprefs edit pubscreen=*"' || SCREEN || '*"" DIR="' || PATH || '"'
-
- else if (SOFTWARE = "GCC") then
-
- 'RUN ASYNC CMD="golded:add-ons/c++/tools/cprefs/bin/gccprefs edit pubscreen=*"' || SCREEN || '*"" DIR="' || PATH || '"'
- else
- 'RUN ASYNC CMD="scopts" DIR="' || PATH || '" SHANGHAI=5'
- end
- end
-
- /* ---------------------------- END OF YOUR CODE ----------------------- */
-
- 'UNLOCK' /* VERY important: unlock GUI */
- EXIT
-
- SYNTAX:
-
- SAY "Sorry, error line" SIGL ":" ERRORTEXT(RC) ":-("
- 'UNLOCK'
- EXIT
-
- /* /// "getprojectname" */
-
- getprojectname: procedure expose CONFIG. STRING. PROJECTNAME OBJFOLDER
-
- parse upper arg SOFTWARE
-
- /* try to read project name from options file or makefile */
-
- PROJECTNAME = ""
- OBJFOLDER = ""
-
- call readoptions(SOFTWARE)
-
- if (PROJECTNAME = "") then do
-
- call readmakefile(SOFTWARE)
-
- if (PROJECTNAME = "") then do
-
- if (SOFTWARE ~= "") then do
-
- /* try again but ignore specified compiler */
-
- call readoptions("")
-
- if (PROJECTNAME = "") then
-
- call readmakefile("")
- end
- end
- end
-
- return
-
- /* /// */
- /* /// "readoptions" */
-
- readoptions: procedure expose CONFIG. STRING. PROJECTNAME OBJFOLDER GSTFILE
-
- /* read compiler-specific options file in project folder (if any exists) */
-
- parse upper arg SOFTWARE
-
- if ((SOFTWARE = "") | (SOFTWARE = "SAS/C") | (SOFTWARE = "SAS/C-GNUMAKE")) then do
-
- if (exists("scoptions")) then do
-
- if open('HANDLE', "scoptions", 'READ') then do
-
- do until eof('HANDLE')
-
- DATA = readln('HANDLE')
-
- if (upper(left(DATA, 12)) = "PROGRAMNAME=") then do
-
- PROJECTNAME = compress(substr(DATA, 13), '"')
- end
- else if (left(DATA, 11) = "OBJECTNAME=") then
-
- OBJFOLDER = compress(substr(DATA, 12), '"')
-
- else if (left(DATA, 18) = "GLOBALSYMBOLTABLE=") then
-
- GSTFILE = compress(substr(DATA, 19), '"')
- end
-
- R = close('HANDLE')
- end
- end
- end
-
- return
-
- /* /// */
- /* /// "saveoptions" */
-
- saveoptions: procedure expose CONFIG. STRING. PROJECTNAME OBJFOLDER
-
- /* generate compiler-specific options file (only if none exists) */
-
- parse upper arg SOFTWARE
-
- if ((SOFTWARE = "SAS/C") | (SOFTWARE = "SAS/C-GNUMAKE")) then do
-
- if (exists("scoptions") = 0) then do
-
- R = open('HANDLE', "scoptions", 'WRITE')
-
- if (R = 0) then do
-
- 'REQUEST PROBLEM="' || STRING.sOPTIONSERR || '"'
- end
- else do
-
- R = writeln('HANDLE', 'PROGRAMNAME="' || PROJECTNAME || '"')
-
- if (OBJFOLDER ~= "") then
-
- R = writeln('HANDLE', 'OBJECTNAME="' || OBJFOLDER || '"')
-
- R = writeln('HANDLE', 'ERRORREXX')
- R = writeln('HANDLE', 'MODIFIED')
- R = writeln('HANDLE', 'NOLINK')
- R = writeln('HANDLE', 'IDENTIFIERLENGTH=80')
- R = writeln('HANDLE', 'NOICONS')
- R = writeln('HANDLE', 'VERBOSE')
-
- R = close('HANDLE')
- end
- end
- end
- else if (SOFTWARE = "VBCC") then do
-
- if (exists("vbcc.options") = 0) then do
-
- R = open('HANDLE', "vbcc.options", 'WRITE')
-
- if (R = 0) then do
-
- 'REQUEST PROBLEM="' || STRING.sOPTIONSERR || '"'
- end
- else do
-
- if (exists("env:vbcc.options")) then do
-
- /* duplicate default configuration */
-
- R = open('TEMPLATE', "env:vbcc.options", 'READ')
-
- if (R = 0) then do
-
- 'REQUEST PROBLEM="' || STRING.sOPTIONSERR || '"'
- end
- else do
-
- do until (eof('TEMPLATE'))
-
- DATA = readln('TEMPLATE')
-
- R = writeln('HANDLE', DATA)
- end
-
- R = close('TEMPLATE')
- end
- end
-
- R = close('HANDLE')
- end
- end
- end
- else if (SOFTWARE = "GCC") then do
-
- if (exists("gcc.options") = 0) then do
-
- R = open('HANDLE', "gcc.options", 'WRITE')
-
- if (R = 0) then do
-
- 'REQUEST PROBLEM="' || STRING.sOPTIONSERR || '"'
- end
- else do
-
- if (exists("env:gcc.options")) then do
-
- /* duplicate default configuration */
-
- R = open('TEMPLATE', "env:gcc.options", 'READ')
-
- if (R = 0) then do
-
- 'REQUEST PROBLEM="' || STRING.sOPTIONSERR || '"'
- end
- else do
-
- do until (eof('TEMPLATE'))
-
- DATA = readln('TEMPLATE')
-
- R = writeln('HANDLE', DATA)
- end
-
- R = close('TEMPLATE')
- end
- end
-
- R = close('HANDLE')
- end
- end
- end
-
- return
-
- /* /// */
- /* /// "readmakefile" */
-
- readmakefile: procedure expose CONFIG. STRING. PROJECTNAME
-
- parse upper arg SOFTWARE
-
- /* locate makefile */
-
- MAKEFILE = ""
-
- if ((SOFTWARE = "") | ((SOFTWARE ~= "SAS/C") & (SOFTWARE ~= "DICE"))) then do
-
- if (exists("makefile")) then
-
- MAKEFILE = "makefile"
- end
-
- if (MAKEFILE = "") then do
-
- if ((SOFTWARE = "") | (SOFTWARE = "SAS/C")) then do
-
- if (exists("smakefile")) then
-
- MAKEFILE = "smakefile"
- end
-
- if (MAKEFILE = "") then do
-
- if ((SOFTWARE = "") | (SOFTWARE = "DICE")) then do
-
- if (exists("dmakefile")) then
-
- MAKEFILE = "dmakefile"
- end
- end
- end
-
- /* try to locate executable name in makefile */
-
- if (MAKEFILE ~= "") then do
-
- if (open('HANDLE', MAKEFILE, 'READ') ~= 0) then do
-
- POS = 0
-
- do until (eof('HANDLE') | (PROJECTNAME ~= ""))
-
- DATA = readln('HANDLE')
-
- if (MAKEFILE = "smakefile") then do
-
- if (pos("sc link to", DATA) ~= 0) then do
-
- parse var DATA with 'sc' 'link' 'to' '"' PROJECTNAME '"' .
-
- if (PROJECTNAME = "") then
-
- parse var DATA with 'sc' 'link' 'to' PROJECTNAME .
- end
- end
- else if (left(DATA, 3) = "EXE") then do
-
- parse var DATA with 'EXE' '=' '"' PROJECTNAME '"'.
-
- if (PROJECTNAME = "") then
-
- parse var DATA with 'EXE' '=' PROJECTNAME .
- end
- end
-
- R = close('HANDLE')
-
- PROJECTNAME = compress(PROJECTNAME, '"')
- end
- end
-
- return
-
- /* /// */
-